/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

$(document).ready(function(){
    
    $("#open_agenda_mensal").click(function(){
        openAgendaMensal();
    })
    
    $(".open_agenda_diaria").livequery(function(){
        $(this).click(function(){
            var data = $(this).attr("label");
            openAgendaDiaria(data)
        })
    })
    
    $("#show-empty").livequery(function(){
        $(this).click(function(){
            if(this.checked == true) {
                $(".empty").hide("slow");
            } else {
                $(".empty").show("slow");
            }
        })
    })
    
    $("#hora_label").livequery(function(){
        $(this).blur(function(){
            var id_servico  = $("input[name='id_servico']").val();
            var date        = $(this).val();
            
            $.post("/agenda/get_profissional_by_servico/",{id_servico:id_servico,date:date},function(json){
                
                $("#id_profissional").html("");
            
                $("<option></option>")
                .val("0")
                .text("Selecione")
                .appendTo("#id_profissional");

                $.each(json.profissionais,function(index,value){
                    
                    $("<option></option>")
                    .val(index)
                    .text(value)
                    .appendTo("#id_profissional");

                })
                
            },'json')
            
            $("input[name='dt_agendamento']").val(date);
            
        })
    })
    
    /**
     * =========================================================================
     * AGENDAMENTO POR MES
     * =========================================================================
     */
    
    $(".agendar_por_mes").livequery(function(){
        $(this).click(function(){
            openModalByMes();
        })
    })
    
    $("#id_servico_mes").livequery(function(){
        $(this).blur(function(){
            
            var id_servico              = $(this).val();
            var dt_inicio_agendamento   = $("#dt_inicio_agendamento").val();
            var dt_fim_agendamento      = $("#dt_fim_agendamento").val();
            
            if(dt_inicio_agendamento != "" && dt_fim_agendamento != "") {
                $.post("/agenda/get_profissional_by_servico",{dt_inicio_agendamento:dt_inicio_agendamento,dt_fim_agendamento:dt_fim_agendamento,id_servico:id_servico},function(json){

                    $("#id_profissional").html("");
            
                    $("<option></option>")
                    .val("0")
                    .text("Selecione")
                    .appendTo("#id_profissional");

                    $.each(json.profissionais,function(index,value){

                        $("<option></option>")
                        .val(index)
                        .text(value)
                        .appendTo("#id_profissional");

                    })

                },'json')
            }            
        })
    })
    /**
     * =========================================================================
     * AGENDAMENTO POR PROFISSIONAL
     * =========================================================================
     */
    
    $(".open_agenda_profissional").livequery(function(){
        $(this).click(function(){
            var id_profissional = $(this).attr("id");
            var nm_profissional = $(this).text();
            openAgendaByProfissional(id_profissional, nm_profissional);
        })
    })
    
    $(".agendar_by_profissional").livequery(function(){
        $(this).click(function(){
            var id_profissional = $(this).attr("id");
            var nm_profissional = $(this).attr("label");
            openModalByProfissional(id_profissional,nm_profissional,"new");
        })
    })
    
    $(".edit_agendamento").livequery(function(){
        $(this).click(function(){
            var id_agendamento = $(this).attr("id");
            var nm_profissional = $(this).attr("label");
            openModalByProfissional(id_agendamento,nm_profissional,"edit");
        })
    })
    
    $("#id_servico").livequery(function(){
        $(this).blur(function(){
            
            var dt_inicio_agendamento   = $("#dt_inicio_agendamento").val();
            var dt_fim_agendamento      = $("#dt_fim_agendamento").val();
            var id_profissional         = $("input[name='id_profissional']").val();
            
            if(dt_inicio_agendamento != "" && dt_fim_agendamento != "") {
                $.post("/agenda/verifica_agenda_by_profissional",{dt_inicio_agendamento:dt_inicio_agendamento,dt_fim_agendamento:dt_fim_agendamento,id_profissional:id_profissional},function(json){

                    if(json.free == "n") {
                        openAlert(json);
                    }

                },'json')
            }            
        })
    })
    
    $(".delete_agendamento").livequery(function(){
        $(this).click(function(){
            var id_agendamento = $(this).attr("id");
            json = $.parseJSON('{"url":"javascript:deletaAgendamento(' + id_agendamento + ')","content":"<p>Esta operação ira deletar o agendamento.<BR/>Tem certeza que deseja proseguir?</p>"}');
            openConfirm(json);
        })
        
    })
    
    $(".visualizar_agendamento").livequery(function(){
        $(this).click(function(){
            var id_agendamento = $(this).attr("id");
            $.post("/agenda/visualizar_agendamento_by_profissional",{id_agendamento:id_agendamento},function(json){
                contentBox(json);
            },'json')
        })
    })
    
})

/**
 * =============================================================================
 * FUNÇÕES POR PROFISSIONAL
 * =============================================================================
 */
function openAgendaByProfissional(id_profissional,nm_profissional) {    
    var altura = screen.availHeight;
    var largura = screen.width;
    var esquerda = (screen.width - largura)/2;
    var topo = (screen.height - altura)/2;
    window.open(this.href='/agenda/agenda_by_profissional/' + id_profissional, 'Profissional: ' + nm_profissional,'toolbar=no,titlebar=yes,location=yes,directories=no,status=no,menubar=no,Scrollbars=YES,height=' + altura + ', width=' + largura  + ', top=' + topo + ', left=' + esquerda);
}

function openModalByProfissional(id,nm_profissional,tp_form)
{
        $.modal({
                url: '/agenda/add_agendamento_by_profissional/',
                data: {id:id,tp_form:tp_form},
                title: nm_profissional,
                maxWidth: 600,
                buttons: {
                        'Agendar': function(win) {$("#formAgendamento").submit()},
                        'Fechar': function(win) {win.closeModal();}
                }
        });
}

/**
 * =============================================================================
 * FUNÇÕES MENSAL
 * =============================================================================
 */

function openAgendaMensal() {
    
    var altura   = screen.availHeight;
    var largura  = '900';
    var esquerda = (screen.width - largura)/2;
    var topo = (screen.height - altura)/2;
    
    window.open(this.href='/agenda/agenda_mensal/', 'Agenda Mensal','toolbar=no,titlebar=yes,location=yes,directories=no,status=no,menubar=no,Scrollbars=YES,height=' + altura + ', width=' + largura  + ', top=' + topo + ', left=' + esquerda);

}

function openModalByMes()
{
        $.modal({
                url: '/agenda/add_agendamento_by_mes/',
                title: 'Novo agendamento',
                maxWidth: 600,
                buttons: {
                        'Agendar': function(win) {$("#formAgendamento").submit()},
                        'Fechar': function(win) {win.closeModal();}
                }
        });
}

/**
 * =============================================================================
 * FUNÇÕES DIARIA
 * =============================================================================
 */

function openAgendaDiaria(data) {
    
    var altura = screen.availHeight;
    var largura = '800';
    var esquerda = (screen.width - largura)/2;
    var topo = (screen.height - altura)/2;
    
    window.open(this.href='/agenda/agenda_diaria/' + data, 'Agenda Diaria','toolbar=no,titlebar=yes,location=yes,directories=no,status=no,menubar=no,Scrollbars=YES,height=' + altura + ', width=' + largura  + ', top=' + topo + ', left=' + esquerda);

}

function openModal(data,tp_agenda,id_servico)
{
        $.modal({
                url: '/agenda/add_agendamento/',
                data: {data:data,tp_agenda:tp_agenda,id_servico:id_servico},
                title: 'Novo Agendamento',
                maxWidth: 600,
                buttons: {
                        'Agendar': function(win) {$("#formAgendamento").submit()},
                        'Fechar': function(win) {win.closeModal();}
                }
        });
}

function selectServico(data,tp_agenda) {
    
    $.modal({
            url: '/agenda/select_servico/',
            data: {data:data,tp_agenda:tp_agenda},
            title: 'Selecione o serviço',
            maxWidth: 600,
            buttons: {
                    'Abrir agenda': function(win) { 
                        var id_servico = $("#id_servico_modal").val();
                        
                        openModal(data,tp_agenda,id_servico);
                        win.closeModal();
                    },
                    'Fechar': function(win) {win.closeModal();}
            }
    });
}

function openAlert(json)
{
        $.modal({
                content: json.content,
                title: 'Alerta',
                maxWidth: 500,
                buttons: {
                        'Ok': function(win) {
                            if(json.url == "#close") {
                                win.closeModal();
                            } else {
                                win.closeModal();
                                $(location).attr('href',json.url);
                            }
                        }
                }
        });
}

function openConfirm(json)
{
        $.modal({
                content: json.content,
                title: 'Cofirmar',
                maxWidth: 500,
                buttons: {
                        'Sim': function(win) {
                            if(json.url == "#close") {
                                win.closeModal();
                            } else {
                                win.closeModal();
                                $(location).attr('href',json.url);
                            }
                        },
                        'Não': function(win) {
                            win.closeModal();
                        }
                        
                }
        });
}

function deletaAgendamento(id_agendamento) {
    $.post("/agenda/delete_agendamento",{id_agendamento:id_agendamento},function(json){
        openAlert(json);
    },'json')
}

function contentBox(json)
{
        $.modal({
                content: json.content,
                title: json.titulo,
                maxWidth: 500
        });
}